package com.ztf.date;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.Month;
import java.time.format.DateTimeFormatter;

public class DateTimeTest {
    public static void main(String[] args) {
      //  System.out.println("1=========="+DateTimeTest.getDateTime());
     //   DateTimeTest.getNewDate();
        String str = "2021-12-31:00:00:00";
        System.out.println(str.substring(0,4));
    }

    /**
     *使用DateTimeFormatter代替SimpleDateFormat
     *DateTimeFormatter是线程安全的，默认提供了很多格式化方法，
     * 也可以通过ofPattern方法创建自定义格式化方法。
     * 格式化日期 与解析日期
     * */
    public static  String getDateTime(){
        //格式化日期
        LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println(localDateTime);
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
        String strDate=localDateTime.format(dateTimeFormatter);
        System.out.println(strDate); // 2019/23/20 15:23:46
        //解析日期
        DateTimeFormatter dtf=DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
        LocalDateTime localDateTime2=LocalDateTime.parse("2019/11/20 15:23:46",dtf);
        System.out.println(localDateTime2); // 2019-11-20T15:23:46
        return  localDateTime+"";
    }

    /**
     *使用JDK8全新的日期和时间API
     * 1、LocalDate、LocalTime、LocalDateTime
     * Date如果不格式化，打印出的日期可读性极差，可使用LocalDateTime代替。
     * （1）LocalDateTime：获取年月日时分秒等于LocalDate+LocalTime
     * */
    public static void getNewDate(){

        LocalDateTime localDateTime = LocalDateTime.now();
        LocalDate localDate = localDateTime.toLocalDate();
        LocalTime localTime = localDateTime.toLocalTime();
        System.out.println("2===="+localDate);
        System.out.println("3===="+localTime);
        //LocalDate：获取年月日
        DateTimeFormatter dateTime = DateTimeFormatter.ofPattern("yyyy/MM/dd");
        String strDate = localDate.format(dateTime);
        System.out.println("4===="+strDate);
        LocalDate localDate2 = LocalDate.parse("2020/04/06",dateTime);
        System.out.println("5===="+localDate2);
        localDate2.getYear();
        Month month = localDate2.getMonth();
        int mon = month.getValue();
        System.out.println("6===="+mon);
        //LocalTime：获取时分秒
        LocalTime localTime2 = LocalTime.now();
        System.out.println("7===="+localTime2); // 15:14:17.081
        int hour = localTime2.getHour();
        int minute = localTime2.getMinute();
        int second = localTime2.getSecond();
        System.out.println("hour===="+hour);
    }



}
